package com.lfy.fyadmin.service;

import com.lfy.fyadmin.dto.MenuTreeNode;
import com.lfy.fyadmin.dto.UserMenuResponse;

import java.util.List;

/**
 * 菜单服务接口
 */
public interface MenuService {
    
    /**
     * 获取当前用户的菜单树
     * @return 用户菜单响应
     */
    UserMenuResponse getCurrentUserMenu();
    
    /**
     * 根据用户ID获取菜单树
     * @param userId 用户ID
     * @return 用户菜单响应
     */
    UserMenuResponse getUserMenuByUserId(Long userId);
    
    /**
     * 获取所有菜单树（管理员使用）
     * @return 菜单树列表
     */
    List<MenuTreeNode> getAllMenuTree();
    
    /**
     * 根据权限列表构建菜单树
     * @param permissionIds 权限ID列表
     * @return 菜单树列表
     */
    List<MenuTreeNode> buildMenuTree(List<Long> permissionIds);
}